package com.weeasy.app.controller;

import com.weeasy.core.common.Result;
import com.weeasy.core.entity.FunctionItem;
import com.weeasy.app.service.FunctionService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * 功能管理控制器 - 统一管理所有功能模块
 * 
 * @author we-easy
 * @since 1.0.0
 */
@RestController
@RequestMapping("/function")
@RequiredArgsConstructor
@CrossOrigin(origins = "*")
public class FunctionController {

    private final FunctionService functionService;

    /**
     * 获取功能列表
     * 
     * @return 功能列表
     */
    @GetMapping("/list")
    public Result<List<FunctionItem>> getFunctionList() {
        List<FunctionItem> functionList = functionService.getFunctionList();
        return Result.success("获取功能列表成功", functionList);
    }

    /**
     * 根据ID获取功能详情
     * 
     * @param id 功能ID
     * @return 功能详情
     */
    @GetMapping("/{id}")
    public Result<FunctionItem> getFunctionById(@PathVariable String id) {
        FunctionItem function = functionService.getFunctionById(id);
        if (function != null) {
            return Result.success("获取功能详情成功", function);
        } else {
            return Result.error("功能不存在");
        }
    }

    /**
     * 获取所有功能模块的API列表
     * 
     * @return API列表
     */
    @GetMapping("/apis")
    public Result<List<String>> getApiList() {
        List<String> apiList = functionService.getApiList();
        return Result.success("获取API列表成功", apiList);
    }
}
